package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 房间信息记录对象 room_recordmessage
 * 
 * @author xyz
 * @date 2025-07-01
 */
public class RoomRecordmessage extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键，快照记录ID */
    private Long id;

    /** 对应 room 表的 id */
    @Excel(name = "对应 room 表的 id")
    private Long roomId;

    /** 房间区域 */
    @Excel(name = "房间区域")
    private String area;

    /** 价格 */
    @Excel(name = "价格")
    private BigDecimal price;

    /** 状态 */
    @Excel(name = "状态")
    private String status;

    /** 分组名称 */
    @Excel(name = "分组名称")
    private String groupName;

    /** 用途 */
    @Excel(name = "用途")
    private String purpose;

    /** 预订人ID */
    @Excel(name = "预订人ID")
    private Long bookerId;

    /** 服务人员ID */
    @Excel(name = "服务人员ID")
    private Long serviceStaffId;

    /** DJ ID */
    @Excel(name = "DJ ID")
    private Long djId;

    /** 预订人姓名 */
    @Excel(name = "预订人姓名")
    private String bookerName;

    /** 服务人员姓名 */
    @Excel(name = "服务人员姓名")
    private String serviceStaffName;

    /** DJ姓名 */
    @Excel(name = "DJ姓名")
    private String djName;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 预订人进场次数 */
    @Excel(name = "预订人进场次数")
    private Long bookerEntryCount;

    /** 服务人员进场次数 */
    @Excel(name = "服务人员进场次数")
    private Long serviceStaffEntryCount;

    /** DJ 进场次数 */
    @Excel(name = "DJ 进场次数")
    private Long djEntryCount;

    /** 总金额 */
    @Excel(name = "总金额")
    private BigDecimal totalAmount;

    /** 折扣 */
    @Excel(name = "折扣")
    private BigDecimal discount;

    /** 服务人员结算 */
    @Excel(name = "服务人员结算")
    private String serviceStaffPayment;

    /** DJ 结算 */
    @Excel(name = "DJ 结算")
    private String djPayment;

    /** 业务员结算 */
    @Excel(name = "业务员结算")
    private String salespersonPayment;

    /** 备用字段 aa */
    @Excel(name = "备用字段 aa")
    private String aa;

    /** 备用字段 bb */
    @Excel(name = "备用字段 bb")
    private String bb;

    /** 备用字段 cc */
    @Excel(name = "备用字段 cc")
    private String cc;

    /** 反馈 */
    @Excel(name = "反馈")
    private String feedback;

    /** 备用字段 ee */
    @Excel(name = "备用字段 ee")
    private String ee;

    /** 备用字段 ff */
    @Excel(name = "备用字段 ff")
    private String ff;

    /** 快照时间（每天凌晨 5 点） */
    @Excel(name = "快照时间", readConverterExp = "每=天凌晨,5=,点=")
    private Date recordTime;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createdAt;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setRoomId(Long roomId) 
    {
        this.roomId = roomId;
    }

    public Long getRoomId() 
    {
        return roomId;
    }

    public void setArea(String area) 
    {
        this.area = area;
    }

    public String getArea() 
    {
        return area;
    }

    public void setPrice(BigDecimal price) 
    {
        this.price = price;
    }

    public BigDecimal getPrice() 
    {
        return price;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setGroupName(String groupName) 
    {
        this.groupName = groupName;
    }

    public String getGroupName() 
    {
        return groupName;
    }

    public void setPurpose(String purpose) 
    {
        this.purpose = purpose;
    }

    public String getPurpose() 
    {
        return purpose;
    }

    public void setBookerId(Long bookerId) 
    {
        this.bookerId = bookerId;
    }

    public Long getBookerId() 
    {
        return bookerId;
    }

    public void setServiceStaffId(Long serviceStaffId) 
    {
        this.serviceStaffId = serviceStaffId;
    }

    public Long getServiceStaffId() 
    {
        return serviceStaffId;
    }

    public void setDjId(Long djId) 
    {
        this.djId = djId;
    }

    public Long getDjId() 
    {
        return djId;
    }

    public void setBookerName(String bookerName) 
    {
        this.bookerName = bookerName;
    }

    public String getBookerName() 
    {
        return bookerName;
    }

    public void setServiceStaffName(String serviceStaffName) 
    {
        this.serviceStaffName = serviceStaffName;
    }

    public String getServiceStaffName() 
    {
        return serviceStaffName;
    }

    public void setDjName(String djName) 
    {
        this.djName = djName;
    }

    public String getDjName() 
    {
        return djName;
    }

    public void setStartTime(Date startTime) 
    {
        this.startTime = startTime;
    }

    public Date getStartTime() 
    {
        return startTime;
    }

    public void setEndTime(Date endTime) 
    {
        this.endTime = endTime;
    }

    public Date getEndTime() 
    {
        return endTime;
    }

    public void setBookerEntryCount(Long bookerEntryCount) 
    {
        this.bookerEntryCount = bookerEntryCount;
    }

    public Long getBookerEntryCount() 
    {
        return bookerEntryCount;
    }

    public void setServiceStaffEntryCount(Long serviceStaffEntryCount) 
    {
        this.serviceStaffEntryCount = serviceStaffEntryCount;
    }

    public Long getServiceStaffEntryCount() 
    {
        return serviceStaffEntryCount;
    }

    public void setDjEntryCount(Long djEntryCount) 
    {
        this.djEntryCount = djEntryCount;
    }

    public Long getDjEntryCount() 
    {
        return djEntryCount;
    }

    public void setTotalAmount(BigDecimal totalAmount) 
    {
        this.totalAmount = totalAmount;
    }

    public BigDecimal getTotalAmount() 
    {
        return totalAmount;
    }

    public void setDiscount(BigDecimal discount) 
    {
        this.discount = discount;
    }

    public BigDecimal getDiscount() 
    {
        return discount;
    }

    public void setServiceStaffPayment(String serviceStaffPayment) 
    {
        this.serviceStaffPayment = serviceStaffPayment;
    }

    public String getServiceStaffPayment() 
    {
        return serviceStaffPayment;
    }

    public void setDjPayment(String djPayment) 
    {
        this.djPayment = djPayment;
    }

    public String getDjPayment() 
    {
        return djPayment;
    }

    public void setSalespersonPayment(String salespersonPayment) 
    {
        this.salespersonPayment = salespersonPayment;
    }

    public String getSalespersonPayment() 
    {
        return salespersonPayment;
    }

    public void setAa(String aa) 
    {
        this.aa = aa;
    }

    public String getAa() 
    {
        return aa;
    }

    public void setBb(String bb) 
    {
        this.bb = bb;
    }

    public String getBb() 
    {
        return bb;
    }

    public void setCc(String cc) 
    {
        this.cc = cc;
    }

    public String getCc() 
    {
        return cc;
    }

    public void setFeedback(String feedback) 
    {
        this.feedback = feedback;
    }

    public String getFeedback() 
    {
        return feedback;
    }

    public void setEe(String ee) 
    {
        this.ee = ee;
    }

    public String getEe() 
    {
        return ee;
    }

    public void setFf(String ff) 
    {
        this.ff = ff;
    }

    public String getFf() 
    {
        return ff;
    }

    public void setRecordTime(Date recordTime) 
    {
        this.recordTime = recordTime;
    }

    public Date getRecordTime() 
    {
        return recordTime;
    }

    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("roomId", getRoomId())
            .append("area", getArea())
            .append("price", getPrice())
            .append("status", getStatus())
            .append("groupName", getGroupName())
            .append("purpose", getPurpose())
            .append("bookerId", getBookerId())
            .append("serviceStaffId", getServiceStaffId())
            .append("djId", getDjId())
            .append("bookerName", getBookerName())
            .append("serviceStaffName", getServiceStaffName())
            .append("djName", getDjName())
            .append("startTime", getStartTime())
            .append("endTime", getEndTime())
            .append("bookerEntryCount", getBookerEntryCount())
            .append("serviceStaffEntryCount", getServiceStaffEntryCount())
            .append("djEntryCount", getDjEntryCount())
            .append("totalAmount", getTotalAmount())
            .append("discount", getDiscount())
            .append("serviceStaffPayment", getServiceStaffPayment())
            .append("djPayment", getDjPayment())
            .append("salespersonPayment", getSalespersonPayment())
            .append("aa", getAa())
            .append("bb", getBb())
            .append("cc", getCc())
            .append("remark", getRemark())
            .append("feedback", getFeedback())
            .append("ee", getEe())
            .append("ff", getFf())
            .append("recordTime", getRecordTime())
            .toString();
    }
}
